//package com.wondertek.poms.service.util;
//
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.data.redis.connection.RedisConnection;
//import org.springframework.data.redis.core.Cursor;
//import org.springframework.data.redis.core.ScanOptions;
//import org.springframework.data.redis.core.ScanOptions.ScanOptionsBuilder;
//import org.springframework.data.redis.core.StringRedisTemplate;
//import org.springframework.stereotype.Component;
//
//import java.io.IOException;
//import java.nio.charset.StandardCharsets;
//import java.util.HashSet;
//import java.util.Set;
//import java.util.function.Consumer;
//
///**
// * @author douzi
// */
//@Component
//public class RedisTemplateHelper {
//
//    @Autowired
//    private StringRedisTemplate redisTemplate;
//
//    /**
//     * scan 实现
//     * @param pattern   表达式
//     * @param consumer  对迭代到的key进行操作
//     */
//    private void scan(String pattern, Consumer<byte[]> consumer) {
//
//        redisTemplate.execute((RedisConnection connection) -> {
//            ScanOptionsBuilder scanOptions = ScanOptions.scanOptions();
//			ScanOptionsBuilder count = scanOptions.count(Integer.MAX_VALUE);
//			ScanOptions build = count.match(pattern).build();
//			try (Cursor<byte[]> cursor = connection.scan(build)) {
//                cursor.forEachRemaining(consumer);
//                return null;
//            } catch (IOException e) {
//                e.printStackTrace();
//                throw new RuntimeException(e);
//            }
//        });
//    }
//
//    /**
//     * 获取符合条件的key
//     * @param pattern   表达式
//     * @return
//     */
//    public Set<String> keys(String pattern) {
//        Set<String> keys = new HashSet<>();
//        this.scan(pattern, item -> {
//            // 符合条件的key
//            String key = new String(item, StandardCharsets.UTF_8);
//            keys.add(key);
//        });
//        return keys;
//    }
//}
